/**
 * @brief  实现7位正数开方, 精确到整数
 * @param  被开方数NUM放在@1A
 * @return 结果存放在@1B和@1C, 分别是上下限; 两个相等则表示能整开方
 **/

@00 101_11010   // LDA NUM   ;
    100_11111   // XOR 0FFH  ;
    010_11001   // ADD 1     ;
    110_11010   // STO NUM   ;  前四条指令求NUM反码, 方便后续比大小
@04 101_11101   // LDA T^2   ;  进入循环
    010_11010   // ADD NUM   ;
    001_00000   // SKZ       ;  先比大小, 若 NUM == T^2 直接跳出; 
    111_01001   // JMP @09   ;  若 NUM != T^2 则继续.
    111_10001   // JMP @17   ;
@09 011_11110   // AND 80H   ;  若 NUM > T^2 则继续;
    001_00000   // SKZ       ;  若 NUM < T^2 则说明已找到结果, 暂停
    111_01101   // JMP @0D   ;
    000_00001   // HLT       ;
@0D 101_11100   // LDA T'    ;  T = T'; T' = T' + 1
    110_11011   // STO T     ;
    010_11001   // ADD 1     ;
    110_11100   // STO T'    ;
    101_11101   // LDA T^2   ;  T^2 = (T + 1)^2 = T^2 + 2*T + 1
    010_11011   // ADD T     ;
    010_11011   // ADD T     ;
    010_11001   // ADD 1     ;
    110_11101   // STO T^2   ;
    111_00100   // JMP @04   ;  继续循环
@17 101_11100   // LDA T'    ;  若被开方数是完全平方数则跳到这里.
    110_11011   // STO T     ;
    000_00001   // HLT & 1   ;
@1A 0111_1111   // NUM       ;  数据段
    0000_0000   // T         ;
    0000_0000   // T'        ;
    0000_0000   // T^2       ;
    1000_0000   // 80H       ;
    1111_1111   // 0FFH      ;